-- 获取KEY，针对哪个接口限流。lua脚本的数组默认索引是1而不是0
local key = KEYS[1]
-- 获取注解上标注的的限流值
local limit = tonumber(ARGV[1])

local currentLimit = tonumber(redis.call('get', key) or "0")

-- 超过限流次数直接返回0(触发限流机制)，否则走else分支
if currentLimit + 1 > limit
then return 0

--首次直接进入
else
    -- 否则，将当前次数+1，并设置过期时间
    redis.call('INCRBY', key, 1)
    -- 设置过期时间 秒
    redis.call('EXPIRE', key, ARGV[2])
    return currentLimit + 1
end